﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Clases.Clases;
using Clases.ClasesPersistentes;
using Clases.Estructuras;
using Clases.Interface;

namespace Clases.Gestores
{
    public class GestorCarrera
    {
        public static List<StrCarrera> listarCarreras()
        {
            try
            {
                DaoCarrera dao = new DaoCarrera();
                List<StrCarrera> listado = dao.listarCarreras();
                return listado;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static void insertarCarrera(String pnombre, String pcodigo, String pgradoAcademico, String nombreUsuarioDA)
        {
            try
            {
                Usuario directorAcademico = GestorUsuario.buscar(nombreUsuarioDA);
                Carrera tmpCarrera = new Carrera(pnombre, pcodigo, pgradoAcademico, directorAcademico);
                DaoCarrera dao = new DaoCarrera();
                dao.insertarCarrera(tmpCarrera);
                GestorAccion.insertarAccion(StrAcciones.agregarCarrera, Properties.Settings.Default.nombreUsuario);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static void modificarCarrera(String pnombre, String pcodigo, String pgradoAcademico, String pidDirectorAcademico)
        {
            try
            {
                Carrera tmpCarrera;
                Usuario directorAcademico = GestorUsuario.buscar(pidDirectorAcademico);
                tmpCarrera = new Carrera(pnombre, pcodigo, pgradoAcademico, directorAcademico);
                DaoCarrera dao = new DaoCarrera();
                dao.modificarCarrera(tmpCarrera);
                GestorAccion.insertarAccion(StrAcciones.modificarCarrera, Properties.Settings.Default.nombreUsuario);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public static IUIObject buscarCarrera(String pnombreCarrera)
        {
            try
            {
                DaoCarrera dao = new DaoCarrera();
                Carrera resultado = dao.buscarCarreras(pnombreCarrera);
                return resultado;
            }
            catch (Exception e) 
            {
                throw e;
            }
        }

        public static List<StrCarrera> buscarCarrerasAprox(String pnombreCarrera)
        {
            try
            {
                DaoCarrera dao = new DaoCarrera();
                List<StrCarrera> listado = dao.buscarCarrerasAprox(pnombreCarrera);
                return listado;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

    }

}
